package pro.cherish.knowledgeumldesignpattern.designPattern.com.cherish.template;
//模板方法模式（钩子方法、方法回调）
//模板方法不让子类重写 使用final
//核心业务方法是延迟到子类中才确定
//本质：多态的体现
//场景：非常频繁，整体步骤固定，但是某些部分易变，将易变得部分抽像出来，供子类实现
//数据库访问封装
//junit单元测试
//servlet中doGET、doPost方法调用
//Hibernate中模板程序
//spring 中JDBCTemppate HibernateTemplate
public class Client {
    public static void main(String []args){
        DrawMoney drawMoney = new DrawMoney();
        drawMoney.process();

//        采用匿名内部类方式
        new BankTemplateMethod(){
            @Override
            public void transact() {
                System.out.println("我要存钱！！");
            }
        }.process();
    }
}

class  DrawMoney extends BankTemplateMethod{
    @Override
    public void transact() {
        System.out.println("我要取款!!");
    }
}
